// 获取指定时间格式的时间戳
export function format(fmt) {
  let date = new Date()
  var o = {
    'M+': date.getMonth() + 1, //月份
    'd+': date.getDate(), //日
    'H+': date.getHours(), //小时
    'm+': date.getMinutes(), //分
    's+': date.getSeconds(), //秒
    'q+': Math.floor((date.getMonth() + 3) / 3), //季度
    S: date.getMilliseconds(), //毫秒
  }
  if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
  for (var k in o) {
    if (new RegExp('(' + k + ')').test(fmt)) fmt = fmt.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length))
  }
  return fmt
}
// 获取指定时间格式和指定时间 的字符串
export function jsonFormat(date1) {
  let fmt = 'yyyy-MM-dd HH:mm:ss'
  let date = new Date(date1)
  var o = {
    'M+': date.getMonth() + 1, //月份
    'd+': date.getDate(), //日
    'H+': date.getHours(), //小时
    'm+': date.getMinutes(), //分
    's+': date.getSeconds(), //秒
    'q+': Math.floor((date.getMonth() + 3) / 3), //季度
    S: date.getMilliseconds(), //毫秒
  }
  if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
  for (var k in o) {
    if (new RegExp('(' + k + ')').test(fmt)) fmt = fmt.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length))
  }
  return fmt
}

//获取指定天数前的  yyyy-MM-dd HH:mm:ss 格式的 时间戳 注意:不能为负数
export function getDateTime(days) {
  let date = new Date(new Date() - 1000 * 60 * 60 * 24 * days)
  var o = {
    'M+': date.getMonth() + 1, //月份
    'd+': date.getDate(), //日
    'H+': date.getHours(), //小时
    'm+': date.getMinutes(), //分
    's+': date.getSeconds(), //秒
    'q+': Math.floor((date.getMonth() + 3) / 3), //季度
    S: date.getMilliseconds(), //毫秒
  }
  let fmt = 'yyyy-MM-dd HH:mm:ss'
  if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
  for (var k in o) {
    if (new RegExp('(' + k + ')').test(fmt)) fmt = fmt.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length))
  }
  return fmt
}


//获取指定天数前的  yyyy-MM-dd HH:mm:ss 格式的 时间戳 注意:不能为负数
export function get(days) {
  let date = new Date(new Date() - 1000 * 60 * 60 * 24 * days)
  var o = {
    'M+': date.getMonth() + 1, //月份
    'd+': date.getDate(), //日
    'H+': date.getHours(), //小时
    'm+': date.getMinutes(), //分
    's+': date.getSeconds(), //秒
    'q+': Math.floor((date.getMonth() + 3) / 3), //季度
    S: date.getMilliseconds(), //毫秒
  }
  let fmt = 'yyyy-MM-dd HH:mm:ss'
  if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
  for (var k in o) {
    if (new RegExp('(' + k + ')').test(fmt)) fmt = fmt.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length))
  }
  return fmt
}

//给定两个时间戳, HH:mm:ss 返回 中间相隔的分钟数列表
export function getMinutesList(start, end) {

  let startH = parseInt(start.substr(0, 2))
  let startM = parseInt(start.substr(3, 2))
  let startS = parseInt(start.substr(6, 2))

  let endH = parseInt(end.substr(0, 2))
  let endM = parseInt(end.substr(3, 2))
  let endS = parseInt(end.substr(6, 2))

  //得到分钟数
  let minutes = (endH - startH) * 60 + endM - startM

  let list = []

  list.push((startH < 10 ? "0" + startH : startH) + ':' + (startM < 10 ? "0" + startM : startM) + ":" + (startS < 10 ? '0' + startS : startS))
  for (let i = 0; i < minutes; i++) {
    startM++;
    if (startM == 60) {
      startM = 0
      startH++
    }
    list.push((startH < 10 ? "0" + startH : startH) + ':' + (startM < 10 ? "0" + startM : startM) + ":00")
  }
  if (endS != 0) {
    list.push((endH < 10 ? "0" + endH : endH) + ':' + (endM < 10 ? "0" + endM : endM) + ":" + (endS < 10 ? '0' + endS : endS))
  }

  return list
}
